package com.ruoyi.nongjt.mapper;

import java.util.List;
import java.util.Map;
import com.ruoyi.nongjt.domain.Certificate;

/**
 * 合格证管理Mapper接口
 * 
 * @author ruoyi
 * @date 2024-04-05
 */
public interface CertificateMapper
{
    /**
     * 新增合格证
     * 
     * @param certificate 合格证信息
     * @return 结果
     */
    public int insertCertificate(Certificate certificate);

    /**
     * 修改合格证
     * 
     * @param certificate 合格证信息
     * @return 结果
     */
    public int updateCertificate(Certificate certificate);

    /**
     * 通过编号查询合格证
     * 
     * @param code 合格证编号
     * @return 合格证信息
     */
    public Certificate selectCertificateByCode(String code);

    /**
     * 查询合格证列表
     * 
     * @param certificate 合格证信息
     * @return 合格证集合
     */
    public List<Certificate> selectCertificateList(Certificate certificate);

    /**
     * 通过编号列表删除合格证
     * 
     * @param codes 合格证编号列表
     * @return 结果
     */
    public int deleteCertificateByCodes(List<String> codes);

    /**
     * 查询用户的合格证总数
     * 
     * @param params 查询参数
     * @return 总数
     */
    public Integer selectTotalCountByUser(Map<String, Object> params);

    /**
     * 根据状态查询用户的合格证数量
     * 
     * @param status 状态
     * @param params 查询参数
     * @return 数量
     */
    public Integer selectCountByStatusAndUser(String status, Map<String, Object> params);

    /**
     * 查询用户最近生成的合格证
     * 
     * @param params 查询参数
     * @return 合格证列表
     */
    public List<Certificate> selectRecentCertificatesByUser(Map<String, Object> params);
}